package com.molichuxing.services.infrastructure.service;

import com.molichuxing.framework.service.RootService;
import com.molichuxing.services.infrastructure.dto.request.create.PaymentDetailCreateDto;
import com.molichuxing.services.infrastructure.dto.response.PaymentDetailDownloadDto;
import com.molichuxing.services.infrastructure.dto.response.PaymentDetailDto;
import com.molichuxing.services.property.PaymentDetailTypeEnum;

import java.util.List;

/**
 * <p>
 * 支付详情
 * </p>
 *
 * @author zhaopenghui
 * @since 2019-08-23
 */
public interface PaymentDetailService extends RootService {

    /**
     * 查询支付详情
     *
     * @param paymentId 支付id
     * @return
     */
    public List<PaymentDetailDto> getPaymentDetail(Integer paymentId);

    /**
     * 查询支付详情
     *
     * @param paymentId 支付id
     * @param type      类型
     * @return
     */
    public PaymentDetailDto getPaymentDetail(Integer paymentId, PaymentDetailTypeEnum type);

    /**
     * 查询支付详情
     *
     * @param type 类型
     * @return
     */
    public List<PaymentDetailDto> getPaymentDetail(PaymentDetailTypeEnum type);

    /**
     * 批量新增
     *
     * @param paymentDetails
     * @return
     */
    public Boolean createBatch(List<PaymentDetailCreateDto> paymentDetails);

    /**
     * 查询保证金
     *
     * @param paymentIds
     * @return
     */
    public List<PaymentDetailDto> getDeposit(List<Integer> paymentIds);

    /**
     * 支付导出查询
     *
     * @param paymentIds 支付单ids
     * @return
     */
    List<PaymentDetailDownloadDto> getPaymentDetailDownload(List<Integer> paymentIds);
}
